package com.sourceQ.system.mq.sms.producer;

import com.sourceQ.common.core.utils.dataStructure.KeyValue;
import com.sourceQ.system.mq.sms.vo.SmsSendMessage;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.stereotype.Component;

import java.util.List;

/**
 * @author: SourceQ
 * @create: 2024-04-18 20:35
 * @Description:sms消息生产者
 */
@Component
@Slf4j
public class SmsProducer {

    @Autowired
    private ApplicationContext applicationContext;

    /**
     * 发送 {@link SmsSendMessage} 消息
     *
     * @param logId 短信日志编号
     * @param mobile 手机号
     * @param channelId 渠道编号
     * @param apiTemplateId 短信模板编号
     * @param templateParams 短信模板参数
     */
    public void sendSmsSendMessage(Long logId, String mobile,
                                   Long channelId, String apiTemplateId, List<KeyValue<String, Object>> templateParams) {
        SmsSendMessage message = new SmsSendMessage().setLogId(logId).setMobile(mobile);
        message.setChannelId(channelId).setApiTemplateId(apiTemplateId).setTemplateParams(templateParams);
        //发布消息事件
        applicationContext.publishEvent(message);
    }
}
